{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pickle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "batch1 = pickle.load(open(r'.\\Data\\batch1.pkl', 'rb'))\n",
    "#remove batteries that do not reach 80% capacity\n",
    "del batch1['b1c8']\n",
    "del batch1['b1c10']\n",
    "del batch1['b1c12']\n",
    "del batch1['b1c13']\n",
    "del batch1['b1c22']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "41"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numBat1 = len(batch1.keys())\n",
    "numBat1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "batch2 = pickle.load(open(r'.\\Data\\batch2.pkl','rb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# There are four cells from batch1 that carried into batch2, we'll remove the data from batch2\n",
    "# and put it with the correct cell from batch1\n",
    "batch2_keys = ['b2c7', 'b2c8', 'b2c9', 'b2c15', 'b2c16']\n",
    "batch1_keys = ['b1c0', 'b1c1', 'b1c2', 'b1c3', 'b1c4']\n",
    "add_len = [662, 981, 1060, 208, 482];"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "for i, bk in enumerate(batch1_keys):\n",
    "    batch1[bk]['cycle_life'] = batch1[bk]['cycle_life'] + add_len[i]\n",
    "    for j in batch1[bk]['summary'].keys():\n",
    "        if j == 'cycle':\n",
    "            batch1[bk]['summary'][j] = np.hstack((batch1[bk]['summary'][j], batch2[batch2_keys[i]]['summary'][j] + len(batch1[bk]['summary'][j])))\n",
    "        else:\n",
    "            batch1[bk]['summary'][j] = np.hstack((batch1[bk]['summary'][j], batch2[batch2_keys[i]]['summary'][j]))\n",
    "    last_cycle = len(batch1[bk]['cycles'].keys())\n",
    "    for j, jk in enumerate(batch2[batch2_keys[i]]['cycles'].keys()):\n",
    "        batch1[bk]['cycles'][str(last_cycle + j)] = batch2[batch2_keys[i]]['cycles'][jk]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "del batch2['b2c7']\n",
    "del batch2['b2c8']\n",
    "del batch2['b2c9']\n",
    "del batch2['b2c15']\n",
    "del batch2['b2c16']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "43"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numBat2 = len(batch2.keys())\n",
    "numBat2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "batch3 = pickle.load(open(r'.\\Data\\batch3.pkl','rb'))\n",
    "# remove noisy channels from batch3\n",
    "del batch3['b3c37']\n",
    "del batch3['b3c2']\n",
    "del batch3['b3c23']\n",
    "del batch3['b3c32']\n",
    "del batch3['b3c42']\n",
    "del batch3['b3c43']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "40"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numBat3 = len(batch3.keys())\n",
    "numBat3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "124"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numBat = numBat1 + numBat2 + numBat3\n",
    "numBat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "bat_dict = {**batch1, **batch2, **batch3}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Discharge Capacity (Ah)')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in bat_dict.keys():\n",
    "    plt.plot(bat_dict[i]['summary']['cycle'], bat_dict[i]['summary']['QD'])\n",
    "plt.xlabel('Cycle Number')\n",
    "plt.ylabel('Discharge Capacity (Ah)')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train and Test Split\n",
    "If you are interested in using the same train/test split as the paper, use the indices specified below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "test_ind = np.hstack((np.arange(0,(numBat1+numBat2),2),83))\n",
    "train_ind = np.arange(1,(numBat1+numBat2-1),2)\n",
    "secondary_test_ind = np.arange(numBat-numBat3,numBat);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py_36_env",
   "language": "python",
   "name": "py_36_env"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}